package com.highspeed.bdk.service.logic;

import com.highspeed.bdk.bean.entity.logic.LogicLink;
import com.highspeed.bdk.service.base.IBdkBaseService;

import java.util.List;

/**
 * Created by chenjiabin on 2018/3/23.
 */
public interface ILogicLinkService extends IBdkBaseService<LogicLink, Integer> {
    /**
     * 删除与逻辑拓扑关联的所有链路
     *
     * @param id 机箱 ID
     */
    void deleteLinksByLogicTopologyId(Integer id);

    /**
     * 删除与应用关联的所有链路
     *
     * @param id 机箱 ID
     */
    void deleteLinksByAppId(Integer id);

    /**
     * 查询与逻辑拓扑关联的所有逻辑链路
     *
     * @param id 逻辑拓扑ID
     * @return 逻辑链路列表
     */
    List<LogicLink> findByLogicTopologyId(Integer id);

    /**
     * 查询与应用关联的所有逻辑链路
     *
     * @param id 应用ID
     * @return 逻辑链路列表
     */
    List<LogicLink> findByAppId(Integer id);

    /**
     * 根据左右两个APP Id 查询线路
     *
     * @param leftAppId  左APP
     * @param rightAppId 右App
     * @return
     */
    LogicLink findByTwoAppId(Integer leftAppId, Integer rightAppId);

    /**
     * 根据左右两个APP Id 查询链路列表
     *
     * @param leftAppId  左APP
     * @param rightAppId 右App
     * @return
     */
    List<LogicLink> findAllByTwoAppId(Integer leftAppId, Integer rightAppId);
}
